package com.hhss.qishi.service.impl;

import com.hhss.qishi.entity.common.Pojo;
import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;

import java.io.Serializable;
import java.util.List;

/**
 * 基础service实现类, 提供给所有的Pojo类
 * @author hhss
 * @date 2019年4月17日 
 */
public class ServiceImpl<T extends Pojo, PK extends Serializable>{
	
	/**
     * 通用Sql泛型注入
     */
    @Autowired
    protected Mapper<T> mapper;
    
    /**
     * 主键sql泛型注入
     */
    @Autowired
    protected IdsMapper<T> idsMapper;
    
    public T getById(PK Id) {
        return mapper.selectByPrimaryKey(Id);
    }
 
    public T getByParam(T pojo) {
    	return mapper.selectOne(pojo);
    }
    
    public T selectByEntity(T pojo) {
    	return mapper.selectOne(pojo);
    }
    
    public List<T> selectAllByEntity(T pojo) {
    	return mapper.select(pojo);
    }
    
    public int deleteById(PK Id) {
        return mapper.deleteByPrimaryKey(Id);
    }

    public int deleteByIds(String ids) {
        return idsMapper.deleteByIds(ids);
    }

    public int deleteByEntity(T pojo){
        return  mapper.delete(pojo);
    }

    public List<T> selectByIds(String ids) {
    	return idsMapper.selectByIds(ids);
    }
}
